﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.Specialized;
using Inmobiliaria.Presenters.ViewInterfaces;
using Inmobiliaria.UCControllers;
using Inmobiliaria.Base;
using Inmobiliaria.Services.Core.DTO;
using System.Net.Mail;
using System.Net;
using System.Text.RegularExpressions;
using System.IO;
using System.Web;

namespace Inmobiliaria.Presenters.WFPresenters
{
    public class RegistroInmobiliariaPresenter : Presenter
    {
        private IViewRegistroInmobiliaria viewRegistroInmobiliaria;
        RegistroInmobiliariaUC _registroInmobiliaria = new RegistroInmobiliariaUC();
        public RegistroInmobiliariaPresenter(IViewRegistroInmobiliaria view)
            : base(view)
        {
            viewRegistroInmobiliaria = view;
        }
        public override void InitView(NameValueCollection queryString)
        {
            viewRegistroInmobiliaria.Provincias = RegistroInmuebleParticularUC.CargarComboProvincias();
        }
        public void CargarComboLocalidades()
        {
            RegistroInmuebleParticularUC _registroInmueble = new RegistroInmuebleParticularUC();
            int id = viewRegistroInmobiliaria.Provincia;
            viewRegistroInmobiliaria.Localidades = _registroInmueble.CargarComboLocalidades(id);

        }
        public void GuardarInmobiliaria()
        {
            ConsultarInmobiliarias(GetInmobiliaria());
        }
        public static int IdInmo;
        public int idInmobiliaria
        {
            get { return IdInmo; }
            set { IdInmo = value; }
        }
        public void ConsultarInmobiliarias(DtoInmobiliaria dtoInmobiliaria)
        {
            int Inmo = _registroInmobiliaria.BuscarInmobiliariaExistente(dtoInmobiliaria);
            if (Inmo >= 1)
            {
                viewRegistroInmobiliaria.ShowMessage(Inmobiliaria.Presenters.Mensajes.InmobiliariaExistente);
            }
            else
            {
                _registroInmobiliaria.GuardarInmobiliaria(dtoInmobiliaria);
                int idinmo = _registroInmobiliaria.BuscarIdInmobiliaria(dtoInmobiliaria);
                idInmobiliaria = idinmo;
                viewRegistroInmobiliaria.idInmobiliaria = idInmobiliaria;
                dtoInmobiliaria.FotoInmobiliaria = viewRegistroInmobiliaria.FotoInmobiliaria;
                viewRegistroInmobiliaria.ShowMessage(Inmobiliaria.Presenters.Mensajes.InmobiliariaExitosa);
            }
        }
        public DtoInmobiliaria GetInmobiliaria()
        {
            DtoInmobiliaria dtoInmobiliaria = new DtoInmobiliaria();
            dtoInmobiliaria.NombreInmobiliaria = viewRegistroInmobiliaria.NombreInmobiliaria;
            dtoInmobiliaria.Provincia = viewRegistroInmobiliaria.Provincia;
            dtoInmobiliaria.Localidad = viewRegistroInmobiliaria.Localidad;
            dtoInmobiliaria.Calle = viewRegistroInmobiliaria.Calle;
            dtoInmobiliaria.Altura = viewRegistroInmobiliaria.Altura;
            dtoInmobiliaria.CodTelefono = viewRegistroInmobiliaria.CodTelefono;
            dtoInmobiliaria.Telefono = viewRegistroInmobiliaria.NumeroTelefono;
            dtoInmobiliaria.CodTelefono2 = viewRegistroInmobiliaria.CodTelefono2;
            dtoInmobiliaria.Telefono2 = viewRegistroInmobiliaria.NumeroTelefono2;
            dtoInmobiliaria.CodCelular = viewRegistroInmobiliaria.CodCelular;
            dtoInmobiliaria.Celular = viewRegistroInmobiliaria.NumeroCelular;
            dtoInmobiliaria.CodCelular2 = viewRegistroInmobiliaria.CodCelular2;
            dtoInmobiliaria.Celular2 = viewRegistroInmobiliaria.NumeroCelular2;
            dtoInmobiliaria.Email = viewRegistroInmobiliaria.Email;
            dtoInmobiliaria.Email2 = viewRegistroInmobiliaria.Email2;
            dtoInmobiliaria.Facebook = viewRegistroInmobiliaria.Facebook;
            dtoInmobiliaria.SitioWeb = viewRegistroInmobiliaria.SitioWeb;
            //   dtoInmobiliaria.FotoInmobiliaria = viewRegistroInmobiliaria.FotoInmobiliaria;
            Validar(dtoInmobiliaria);
            return dtoInmobiliaria;
        }
        private void Validar(DtoInmobiliaria inmobiliaria)
        {
            StringBuilder errores = new StringBuilder();
            if (String.IsNullOrEmpty(inmobiliaria.NombreInmobiliaria))
            {
                errores.AppendLine(Recursos.Inmobiliaria.NombreInmobiliariaRequerido);
            }
            if (String.IsNullOrEmpty(inmobiliaria.Calle))
            {
                errores.AppendLine(Recursos.Inmobiliaria.CalleInmobiliariaRequerido);
            }
            if (String.IsNullOrEmpty(inmobiliaria.Altura))
            {
                errores.AppendLine(Recursos.Inmobiliaria.AlturaInmobiliariaRequerido);
            }
            if (String.IsNullOrEmpty(inmobiliaria.Telefono))
            {
                errores.AppendLine(Recursos.Inmobiliaria.AlturaInmobiliariaRequerido);
            }
        }
        public void Volver()
        {
            HttpContext.Current.Response.Redirect("HomeWF.aspx");
        }
    }
}
